package middleware

// // RBACMiddleware RBAC 中间件
// func RBACMiddleware(db *gorm.DB) gin.HandlerFunc {
// 	return func(c *gin.Context) {
// 		// 获取用户信息
// 		user := c.MustGet("user").(*user.User)

// 		// 获取请求路径和方法
// 		path := c.Request.URL.Path
// 		method := c.Request.Method

// 		// 构造权限标识
// 		permission := strings.ToLower(method) + ":" + path

// 		// 检查用户是否有权限
// 		hasPermission := checkUserPermission(db, user, permission)
// 		if !hasPermission {
// 			c.JSON(http.StatusForbidden, gin.H{"error": "权限不足"})
// 			c.Abort()
// 			return
// 		}

// 		c.Next()
// 	}
// }

// // checkUserPermission 检查用户是否有权限
// func checkUserPermission(db *gorm.DB, user *model.User, permission string) bool {
// 	var count int64
// 	db.Model(&model.User{}).
// 		Where("id = ?", user.ID).
// 		Joins("JOIN user_roles ON users.id = user_roles.user_id").
// 		Joins("JOIN roles ON user_roles.role_id = roles.id").
// 		Joins("JOIN role_permissions ON roles.id = role_permissions.role_id").
// 		Joins("JOIN permissions ON role_permissions.permission_id = permissions.id").
// 		Where("permissions.name = ?", permission).
// 		Count(&count)
// 	return count > 0
// }
